package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.domain.model.Book;
import com.example.demo.domain.model.Borrow;
import com.example.demo.domain.query.BorrowCreateQuery;
import com.example.demo.domain.query.BorrowDtlQuery;
import com.example.demo.domain.vo.BookVo;
import com.example.demo.domain.vo.BorrowDtlVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BorrowMapper extends BaseMapper<Borrow> {
    /**
     * 查找该用户借书的次数是否大于2
     * @param userId
     * @return
     */
    int getBorrowCount( Long userId);

    /**
     * 借书，添加借阅记录
     * @param borrowCreateQuery
     * @return
     */
    int insert(BorrowCreateQuery borrowCreateQuery);



    /**
     * 根据图书名称、借阅是否归还查询借书记录情况
     * @param borrowDtlQuery
     * @return
     */
     List<BorrowDtlVo> dtl(BorrowDtlQuery borrowDtlQuery);

    /**
     * 延续借书，点击后归还时间加7天，借书次数加1
     * @param borrowId
     * @param userId
     * @return
     */
     int updateBorrowDate(@Param("borrowId") Long borrowId , @Param("userId") Long userId );

    /**
     * 查询续借次数
     * @param borrowId
     * @param userId
     * @return
     */
    int getRenewCount(@Param("borrowId") Long borrowId, @Param("userId") Long userId);

    /**
     * 更新归还时间
     * @param userId
     * @param bookId
     * @return
     */
    int returnTimeBook(@Param("userId") Long userId, @Param("bookId") Long bookId);





}
